package pagecontroller;

import controller.UsuarioController;
import java.util.Stack;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author aluno
 */
public class PageManager {

    public final String TEMPLATE_1 = "./template/template1.xhtml";
    public final String TEMPLATE_2 = "./template/template2.xhtml";
    private String pageActive = "./principal.xhtml";
    private String menuActive = "./menuCadastros.xhtml";
    private String templateActive = TEMPLATE_1;
    public final String CAD = "Cad";
    public final String RELAT = "Relat";
    public final String LIST = "List";
    public final String PESQUISA = "Pesquisa";
    public final String SELECT = "Select";
    public final String IMPRIMIR = "Print";
    public final String NADA = "";
    private String modalActive;
    private boolean modalVisible = false;
    private String entidade = "principal";
    private String atividade;
    private Stack<String> pilha = new Stack<String>();
    private String pagina;
    private String paginaEntidade;

    public String getAtividade() {
        return atividade;
    }

    public void setAtividade(String atividade) {
        this.atividade = atividade;
    }

    public String getEntidade() {
        return entidade;
    }

    public void setEntidade(String entidade) {
        this.setModalVisible(false);
        this.entidade = entidade;
    }

    public String getPagina() {
        pagina = "./" + getEntidade() + getAtividade() + ".xhtml";
        return pagina;
    }

    public String getPaginaEntidade() {
        paginaEntidade = "./" + getEntidade() + "/" + getEntidade() + ".xhtml";
        return paginaEntidade;
    }

    public String setPageCad() {
        this.atividade = CAD;
        return "refreshPage";
    }

    public String setPageRelat() {
        this.atividade = RELAT;
        return "refreshPage";
    }

    public String setPageList() {
        this.atividade = LIST;
        return "refreshPage";
    }

    public String setPagePesquisa() {
        this.atividade = PESQUISA;
        return "refreshPage";
    }

    public String setPageNada() {
        this.atividade = NADA;
        return "refreshPage";
    }

    public void setAtividadeCad() {
        this.atividade = CAD;
    }

    public void setAtividadeRelat() {
        this.atividade = RELAT;
    }

    public void setAtividadeList() {
        this.atividade = LIST;
    }

    public void setAtividadePesquisa() {
        this.atividade = PESQUISA;
    }

    public void setAtividadePrint() {
        this.atividade = IMPRIMIR;
    }

    public void setAtividadeNada() {
        this.atividade = NADA;
    }

    public void setAtividadeSelect() {
        this.atividade = SELECT;
    }

    public String getModalActive() {
        return modalActive;
    }

    public void setModalActive(String modalActive) {
        this.modalActive = modalActive;
        pilha.add(this.getModalActive());
        this.setModalVisible(true);
    }

    public boolean isModalVisible() {
        return modalVisible;
    }

    public void setModalVisible(boolean modalVisible) {
        this.modalVisible = modalVisible;
    }

    public void setModalVisible() {
        this.modalVisible = true;
    }

    public void setModalInvisible() {
        this.modalVisible = false;
    }

    public String setModalInvisibleRefresh() {
        this.modalVisible = false;
        return "refreshPage";
    }

    public String getPageActive() {
        return pageActive;
    }

    private void setPageActive(String pageActive) {
        this.setModalVisible(false);
        this.pageActive = pageActive;
    }

    public String getMenuActive() {
        return menuActive;
    }

    public void setMenuActive(String menuActive) {
        this.setModalVisible(false);
        this.menuActive = menuActive;
    }

    public String getTemplateActive() {
        return templateActive;
    }

    public void setTemplateActive(String templateActive) {
        this.templateActive = templateActive;
    }

    public PageManager() {
    }

    //Template
    public String setTemplate1() {
        this.setTemplateActive(TEMPLATE_1);
        return "refreshPage";
    }

    public String setTemplate2() {
        this.setTemplateActive(TEMPLATE_2);
        return "refreshPage";
    }

    //Menu
    public String setMenuCadastro() {
        this.setMenuActive("./menuCadastros.xhtml");
        this.setTemplateActive(TEMPLATE_1);
        return "refreshPage";
    }

    public String setMenuQuestoes() {
        this.setMenuActive("./menuQuestoes.xhtml");
        this.setTemplateActive(TEMPLATE_1);
        return "refreshPage";
    }

    public String setMenuListasAvaliacoes() {
        this.setMenuActive("./menuListasAvaliacoes.xhtml");
        this.setTemplateActive(TEMPLATE_1);
        return "refreshPage";
    }

    public String setMenuAjuda() {
        this.setMenuActive("./menuAjuda.xhtml");
        this.setTemplateActive(TEMPLATE_1);
        return "refreshPage";
    }

    public String setMenuAdmin() {
        this.setMenuActive("./menuAdmin.xhtml");
        this.setTemplateActive(TEMPLATE_1);
        return "refreshPage";
    }

    public String setMenuRelatorios() {
        this.setMenuActive("./menuRelatorios.xhtml");
        this.setTemplateActive(TEMPLATE_1);
        return "refreshPage";
    }

    //Paginas
    public String setPagePrincipal() {
//        this.setPageActive("./principal.xhtml");
        this.setAtividadeNada();
        this.setEntidade("principal");

        UsuarioController usuarioController = (UsuarioController) JsfUtil.getObjectFromSession("UsuarioController");
        if (usuarioController == null) {
            usuarioController = new UsuarioController();
        }
        if (usuarioController.isLogado()) {
            this.setTemplateActive(TEMPLATE_2);
        } else {
            this.setTemplateActive(TEMPLATE_1);
        }

        return "refreshPage";
    }

    public String setPageMapa() {
        this.setAtividadeNada();
        this.setEntidade("mapa");
        setTemplate1();
        return "refreshPage";
    }

    //aluno
    public void setPageAluno() {
        this.setEntidade("aluno");
    }

    public String setPageAlunoCad() {
        this.setAtividadeCad();
        this.setPageAluno();
        return "refreshPage";
    }

    public String setPageAlunoCadMassa() {
        this.setAtividade("CadMassa");
        this.setPageAluno();
        return "refreshPage";
    }

    public String setPageAlunoRelat() {
        this.setAtividadeRelat();
        this.setPageAluno();
        return "refreshPage";
    }

    public String setPageAlunoList() {
        this.setAtividadeList();
        this.setPageAluno();
        return "refreshPage";
    }

    public String setPageAlunoPesquisa() {
        this.setAtividadePesquisa();
        this.setPageAluno();
        return "refreshPage";
    }

    public String setModalAlunoRelat() {
        this.setModalActive("./aluno/alunoRelat.xhtml");
        this.setModalVisible(true);
        return "refreshPage";
    }

    //Disciplina
    public void setPageDisciplina() {
        this.setEntidade("disciplina");
    }

    public String setPageDisciplinaCad() {
        this.setAtividadeCad();
        this.setPageDisciplina();
        return "refreshPage";
    }

    public String setPageDisciplinaRelat() {
        this.setAtividadeRelat();
        this.setPageDisciplina();
        return "refreshPage";
    }

    public String setPageDisciplinaList() {
        this.setAtividadeList();
        this.setPageDisciplina();
        return "refreshPage";
    }

    //Professor
    public void setPageProfessor() {
        this.setEntidade("professor");
    }

    public String setPageProfessorCad() {
        this.setAtividadeCad();
        this.setPageProfessor();
        return "refreshPage";
    }

    public String setPageProfessorRelat() {
        this.setAtividadeRelat();
        this.setPageProfessor();
        return "refreshPage";
    }

    public String setPageProfessorList() {
        this.setAtividadeList();
        this.setPageProfessor();
        return "refreshPage";
    }

    //Categoria
    public void setPageCategoria() {
        this.setEntidade("categoria");
    }

    public String setPageCategoriaCad() {
        this.setAtividadeCad();
        this.setPageCategoria();
        return "refreshPage";
    }

    public String setPageCategoriaRelat() {
        this.setAtividadeRelat();
        this.setPageCategoria();
        return "refreshPage";
    }

    public String setPageCategoriaList() {
        this.setAtividadeList();
        this.setPageCategoria();
        return "refreshPage";
    }

//    public String setPageCategoriaSelect() {
//        this.setPageActive("./categoriaSelect.xhtml");
//        return "refreshPage";
//    }
    //Area
    public void setPageArea() {
        this.setEntidade("area");
    }

    public String setPageAreaCad() {
        this.setAtividadeCad();
        this.setPageArea();
        return "refreshPage";
    }

    public String setPageAreaRelat() {
        this.setAtividadeRelat();
        this.setPageArea();
        return "refreshPage";
    }

    public String setPageAreaList() {
        this.setAtividadeList();
        this.setPageArea();
        return "refreshPage";
    }

    //questao
    public void setPageQuestao() {
        this.setEntidade("questao");
    }

    public String setPageQuestaoCad() {
        this.setAtividadeCad();
        this.setPageQuestao();
        return "refreshPage";
    }

    public String setPageQuestaoRelat() {
        this.setAtividadeRelat();
        this.setPageQuestao();
        return "refreshPage";
    }

    public String setPageQuestaoList() {
        this.setAtividadeList();
        this.setPageQuestao();
        return "refreshPage";
    }

    public String setPageQuestaoPesquisa() {
        this.setAtividadePesquisa();
        this.setPageQuestao();
        return "refreshPage";
    }
    
    public String setModalQuestaoRelat() {
        this.setModalActive("./questao/questaoRelat.xhtml");
        this.setModalVisible(true);
        return "refreshPage";
    }

    //questaoLista
    public void setPageQuestaoLista() {
        this.setEntidade("questaoLista");
    }

    public String setPageQuestaoListaCad() {
        this.setAtividadeCad();
        this.setPageQuestaoLista();
        return "refreshPage";
    }

    public String setPageQuestaoListaRelat() {
        this.setAtividadeRelat();
        this.setPageQuestaoLista();
        return "refreshPage";
    }

    public String setPageQuestaoListaList() {
        this.setAtividadeList();
        this.setPageQuestaoLista();
        return "refreshPage";
    }

    public String setModalQuestaoListaCad() {
        this.setModalActive("./questaoLista/questaoListaCad.xhtml");
        this.setModalVisible(true);
        return "refreshPage";
    }

    //questaoWorkspace
    public void setPageQuestaoWorkspace() {
        this.setEntidade("questaoWorkspace");
    }

    public String setPageQuestaoWorkspaceCad() {
        this.setAtividadeCad();
        this.setPageQuestaoWorkspace();
        return "refreshPage";
    }

    public String setPageQuestaoWorkspaceRelat() {
        this.setAtividadeRelat();
        this.setPageQuestaoWorkspace();
        return "refreshPage";
    }

    public String setPageQuestaoWorkspaceList() {
        this.setAtividadeList();
        this.setPageQuestaoWorkspace();
        return "refreshPage";
    }

    //item
    public void setPageItem() {
        this.setEntidade("item");
    }

    public String setPageItemCad() {
        this.setAtividadeCad();
        this.setPageItem();
        return "refreshPage";
    }

    public String setModalItemCad() {
        this.setModalActive("./item/itemCad.xhtml");
        this.setModalVisible(true);
        return "refreshPage";
    }

    public String setPageItemRelat() {
        this.setAtividadeRelat();
        this.setPageItem();
        return "refreshPage";
    }

    public String setPageItemList() {
        this.setAtividadeList();
        this.setPageItem();
        return "refreshPage";
    }

    //Workspace
    public void setPageWorkspace() {
        this.setEntidade("workspace");
    }

    public String setPageWorkspaceCad() {
        this.setAtividadeCad();
        this.setPageWorkspace();
        return "refreshPage";
    }

    public String setPageWorkspaceRelat() {
        this.setAtividadeRelat();
        this.setPageWorkspace();
        return "refreshPage";
    }

    public String setPageWorkspaceList() {
        this.setAtividadeList();
        this.setPageWorkspace();
        return "refreshPage";
    }

    public String setPageWorkspacePesquisa() {
        this.setAtividadePesquisa();
        this.setPageWorkspace();
        return "refreshPage";
    }

    //Turma
    public void setPageTurma() {
        this.setEntidade("turma");
    }

    public String setPageTurmaCad() {
        this.setAtividadeCad();
        this.setPageTurma();
        return "refreshPage";
    }

    public String setPageTurmaRelat() {
        this.setAtividadeRelat();
        this.setPageTurma();
        return "refreshPage";
    }

    public String setPageTurmaList() {
        this.setAtividadeList();
        this.setPageTurma();
        return "refreshPage";
    }

    //Ementa
    public void setPageEmenta() {
        this.setEntidade("ementa");
    }

    public String setPageEmentaCad() {
        this.setAtividadeCad();
        this.setPageEmenta();
        return "refreshPage";
    }

    public String setPageEmentaRelat() {
        this.setAtividadeRelat();
        this.setPageEmenta();
        return "refreshPage";
    }

    public String setPageEmentaList() {
        this.setAtividadeList();
        this.setPageEmenta();
        return "refreshPage";
    }

    public String setModalEmentaCad() {
        this.setModalActive("./ementa/ementaCad.xhtml");
        this.setModalVisible(true);
        return "refreshPage";
    }

    public String setModalEmentaRelat() {
        this.setModalActive("./ementa/ementaRelat.xhtml");
        this.setModalVisible(true);
        return "refreshPage";
    }

    //plano
    public void setPagePlano() {
        this.setEntidade("plano");
    }

    public String setPagePlanoCad() {
        this.setAtividadeCad();
        this.setPagePlano();
        return "refreshPage";
    }

    public String setPagePlanoRelat() {
        this.setAtividadeRelat();
        this.setPagePlano();
        return "refreshPage";
    }

    public String setPagePlanoList() {
        this.setAtividadeList();
        this.setPagePlano();
        return "refreshPage";
    }

    //Conteudo
    public void setPageConteudo() {
        this.setEntidade("conteudo");
    }

    public String setPageConteudoCad() {
        this.setAtividadeCad();
        this.setPageConteudo();
        return "refreshPage";
    }

    public String setPageConteudoRelat() {
        this.setAtividadeRelat();
        this.setPageConteudo();
        return "refreshPage";
    }

    public String setPageConteudoList() {
        this.setAtividadeList();
        this.setPageConteudo();
        return "refreshPage";
    }

    public String setPageConteudoPesquisa() {
        this.setAtividadePesquisa();
        this.setPageConteudo();
        return "refreshPage";
    }

    public String setModalConteudoCad() {
        this.setModalActive("./conteudo/conteudoCad.xhtml");
        this.setModalVisible(true);
        return "refreshPage";
    }

    public String setModalConteudoPesquisa() {
        this.setModalActive("./conteudo/conteudoPesquisa.xhtml");
        this.setModalVisible(true);
        return "refreshPage";
    }

    //Lista
    public void setPageLista() {
        this.setEntidade("lista");
    }

    public String setPageListaCad() {
        this.setAtividadeCad();
        this.setPageLista();
        return "refreshPage";
    }

    public String setPageListaRelat() {
        this.setAtividadeRelat();
        this.setPageLista();
        return "refreshPage";
    }

    public String setPageListaList() {
        this.setAtividadeList();
        this.setPageLista();
        return "refreshPage";
    }

    public String setPageListaPrint() {
        this.setAtividadePrint();
        this.setPageLista();
        this.setTemplate2();
        return "refreshPage";
    }
    
    
    public String setModalDownloadLista() {
        this.setModalActive("./lista/listaDownload.xhtml");
        this.setModalVisible(true);
        return "refreshPage";
    }

    //ListaAluno
    public void setPageListaAluno() {
        this.setEntidade("listaAluno");
    }

    public String setPageListaAlunoCad() {
        this.setAtividadeCad();
        this.setPageListaAluno();
        return "refreshPage";
    }

    public String setPageListaAlunoRelat() {
        this.setAtividadeRelat();
        this.setPageListaAluno();
        return "refreshPage";
    }

    public String setPageListaAlunoList() {
        this.setAtividadeList();
        this.setPageListaAluno();
        return "refreshPage";
    }

    public String setPageListaAlunoSelect() {
        this.setAtividadeSelect();
        this.setPageListaAluno();
        return "refreshPage";
    }

    //Observacao
    public void setPageObservacao() {
        this.setEntidade("observacao");
    }

    public String setPageObservacaoCad() {
        this.setAtividadeCad();
        this.setPageObservacao();
        return "refreshPage";
    }

    public String setModalObservacaoCad() {
        this.setModalActive("./observacao/observacaoCad.xhtml");
        this.setModalVisible(true);
        return "refreshPage";
    }

    public String setPageObservacaoRelat() {
        this.setAtividadeRelat();
        this.setPageObservacao();
        return "refreshPage";
    }

    public String setPageObservacaoList() {
        this.setAtividadeList();
        this.setPageObservacao();
        return "refreshPage";
    }

    //comentario
    public void setPageComentario() {
        this.setEntidade("comentario");
    }

    public String setPageComentarioCad() {
        this.setAtividadeCad();
        this.setPageComentario();
        return "refreshPage";
    }

    public String setPageComentarioRelat() {
        this.setAtividadeRelat();
        this.setPageComentario();
        return "refreshPage";
    }

    public String setPageComentarioList() {
        this.setAtividadeList();
        this.setPageComentario();
        return "refreshPage";
    }

    //Ajuda
    public void setPageAjuda() {
        this.setEntidade("ajuda");
    }

    public String setPageAjudaRelat() {
        this.setModalActive("./ajudaRelat.xhtml");
        this.setModalVisible(true);
        return "refreshPage";
    }

    public String setModalAjudaRelat() {
        this.setModalActive("./ajuda/ajudaRelat.xhtml");
        this.setModalVisible(true);
        return "refreshPage";
    }

    //matriculado
    public void setPageMatriculado() {
        this.setEntidade("matriculado");
    }

    public String setPageMatriculadoCad() {
        this.setAtividadeCad();
        this.setPageMatriculado();
        return "refreshPage";
    }

    public String setModalMatriculadoCad() {
        this.setModalActive("./matriculado/matriculadoCad.xhtml");
        this.setModalVisible(true);
        return "refreshPage";
    }

    public String setPageMatriculadoRelat() {
        this.setAtividadeRelat();
        this.setPageMatriculado();
        return "refreshPage";
    }

    public String setPageMatriculadoList() {
        this.setAtividadeList();
        this.setPageMatriculado();
        return "refreshPage";
    }

    //correcaoListaAluno
    public void setPageCorrecaoListaAluno() {
        this.setEntidade("correcaoListaAluno");
    }

    public String setPageCorrecaoListaAlunoCad() {
        this.setTemplate2();
        this.setAtividadeCad();
        this.setPageCorrecaoListaAluno();
        return "refreshPage";
    }

    public String setModalCorrecaoListaAlunoCad() {
        this.setModalActive("./correcaoListaAluno/correcaoListaAlunoCad.xhtml");
        this.setModalVisible(true);
        return "refreshPage";
    }

    public String setPageCorrecaoListaAlunoRelat() {
        this.setAtividadeRelat();
        this.setPageCorrecaoListaAluno();
        return "refreshPage";
    }

    public String setPageCorrecaoListaAlunoList() {
        this.setAtividadeList();
        this.setPageCorrecaoListaAluno();
        return "refreshPage";
    }

    //desempenho
    public void setPageRelatorio() {
        this.setEntidade("relatorio");
    }

    public String setPageRelatorioDesempenhoLista() {
        this.setPageRelatorio();
        this.setAtividade("DesempenhoLista");
        return "refreshPage";
    }

    public String setModalRelatorioDesempenhoLista() {
        this.setModalActive("./relatorio/listaSelect.xhtml");
        this.setModalVisible(true);
        return "refreshPage";
    }

    public String setPageRelatorioDesempenhoAluno() {
        this.setPageRelatorio();
        this.setAtividade("DesempenhoAluno");
        return "refreshPage";
    }

        public String setModalDesempenhoAlunoSelect() {
        this.setModalActive("./relatorio/alunoSelect.xhtml");
        this.setModalVisible(true);
        
        return "refreshPage";
    }

    
    public String setPageRelatorioDesempenhoTurma() {
        this.setPageRelatorio();
        this.setAtividade("DesempenhoTurma");
        return "refreshPage";
    }
    
    
            public String setModalDesempenhoTurmaSelect() {
        this.setModalActive("./relatorio/turmaSelect.xhtml");
        this.setModalVisible(true);
        
        return "refreshPage";
    }
}
